/**
 * Projeto final de Programacao Concorrente.
 * Prof. Dr. Julio Estrella
 * 
 * Geracao aleatoria de palavras.
 * 
 * Grupo 07 - Turma B
 * Fabio de Albuquerque Dela Antonio 6792558
 * Leonardo Henrique Omoto 6793160
 * Pedro Paulo Canto Martucci 6793100
 * 
 * tempo.cpp
 */

#include "tempo.h"

/*  Constrói um cronômetro, começando o contador */
Tempo::Tempo()
{
    reset();
}

/* Reseta o cronômetro */
void Tempo::reset()
{
    clock_gettime(CLOCK_REALTIME, &init);
}

/* Retorna o tempo atual em segundos */
double Tempo::getSeconds()
{
    struct timespec end;
    clock_gettime(CLOCK_REALTIME, &end);
    double time = (end.tv_sec - init.tv_sec) + (end.tv_nsec - init.tv_nsec) / (double) 1000000000;
    return time;
}

/* Retorna o tempo atual em milisegundos */
double Tempo::getMiliseconds()
{
    struct timespec end;
    clock_gettime(CLOCK_REALTIME, &end);
    double time = (end.tv_sec - init.tv_sec) * 1000 + (end.tv_nsec - init.tv_nsec) / (double) 1000000;
    return time;
}
